<?php
//spl_autoload_register(function (){
//
//});
///**
// * Created by PhpStorm.
// * User: Administrator
// * Date: 2019/1/16
// * Time: 14:12
// */
//
////require_once '../server/Redis.php';
//
////swoole_timer_tick(1000,function ()use (){
////
////})
////for ($i=1 ;$i<=12;$i++){
////    Rediss::rpush('max',$i);
////}
//
////Rediss::rpop('max');
//spl_autoload_register(function ($class){
//   require_once "../server/{$class}.php";
//});
//
//class MyClass
//{
//    protected $server;
//    protected $action=[];
//    // 如果使用类的实例调用$method，但$method方法不是公有的，就会触发此函数。
//    public function __call($method, $args)
//    {
//        if ($method == 'Rediss') {  //做一个链式调用
//            $this->server = $method;
//            return $this;
//        }
//        $data =[
//            'server'=>$this->server,
//            'action'=>$method,
//            'paras'=>$args,
//        ];
//        $rss = new $data['server'];
//        $pa =array_shift($data['paras']);
//        var_dump($rss->$data['action']());
//        exit();
//        $res = $rss->$data['action']($pa['key'],$pa['val']);
//        var_dump($res);exit();
//
//    }
//
//}
//
//try {
//    $myobj = new MyClass;
//    $myobj->Rediss()->set(['key'=>87287,'val'=>123]);
//} catch (Exception $e) {
//    var_dump($e->getMessage());
//}
//
//
////$res =Rediss::lSize('max');
////
////exit();
////echo 111;
///


//class C
//{
//    public function doSomething()
//    {
//        echo __METHOD__, '我是C类|';
//    }
//}
//
//class B
//{
//    private $c;
//
//    public function __construct()
//    {
//        echo '我是b';
//    }
//
//    public function doSomething()
//    {
//        $this->c->doSomething();
//        echo __METHOD__, '我是B类|';
//    }
//}
//class A
//{
//    private $b;
//
//    public function __construct(C $b)
//    {
//        $this->b = $b;
//    }
//
//    public function doSomething()
//    {
//        $this->b->doSomething();
//        echo __METHOD__, '我是A类|';;
//    }
//}
//
////这段代码使用了魔术方法，在给不可访问属性赋值时，__set() 会被调用。读取不可访问属性的值时，__get() 会被调用。
//class Container
//{
//    private $s = array();
//
//    function __set($k, $c)
//    {
//        $this->s[$k] = $c;
//    }
//    function __get($k)
//    {var_dump($this->s[$k]);
//        return $this->s[$k]();
//    }
//}
//
//$class = new Container();
//
//$class->c = function () {
//    return new C();
//};
//$class->b = function () {
//    return new B();
//};
////$class->a = function ($class) {
////    return new A($class->c);
////};
//
//// 从容器中取得A
//$model = $class->b;
//var_dump($model);exit();
//$model->doSomething(); // C::doSomething我是C类|B::doSomething我是B类|A::doSomething我是A类|
header("Content-type: text/html; charset=utf-8");
$data =[
  'version'=>'1',
  'agent_id'=>'2110898',
];
//2B26BFB0DD04482DAF9D6DF8
$data['sign']=md5("version=1&agent_id=2108080&key=F458841B85D6439A91D52EAA");
$url = 'https://www.heepay.com/API/Merchant/QueryBank.aspx?'.http_build_query($data);
var_dump($url);